package com.example.nio.intbuffer;

import java.nio.IntBuffer;
import java.util.Arrays;

/**
 * @author panghu
 * @version 1.0.0
 * @createTime 2023年08月05日 22:58:00
 * @Description
 */
public class SliceDemo {

    public static void main(String[] args) {
        IntBuffer buffer = IntBuffer.wrap(new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 0});
        for (int i = 0; i < 4; i++) {
            buffer.get();
        }
        IntBuffer slice = buffer.slice();

        // [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] 只是逻辑上的截取，底层数据真正就没变
        System.out.println("划分之后的情况："+ Arrays.toString(slice.array()));
        // 4 上面读取的下一个位置
        System.out.println("划分之后的偏移地址："+slice.arrayOffset());
        // pos置为0
        System.out.println("当前position位置："+slice.position());
        // limit = cap = 剩余空间
        System.out.println("当前limit位置："+slice.limit());

        // 打印出来：5, 6, 7, 8, 9, 0,
        while (slice.hasRemaining()) {   //将所有的数据全部挨着打印出来
            System.out.print(slice.get()+", ");
        }
    }

}
